Skip to content

Updates/Creates a schema in DEVELOPMENT status with INTERNAL scope

Request

Creates a new schema or updates an already existing schema with status DEVELOPMENT in the schema repository. If a user tries to create/update a schema with status other then DEVELOPMENT, API will throw an exception. Any schema instance with the same schemaIdentity is replaced (in contrast to the immutability of PUBLISHED or OBSOLETE schemas). A schema state can also be changed from DEVELOPMENT to PUBLISHED or OBSOLETE while updating schema content or by providing the same schema content.

Note: The schema may refer to other schema definitions in DEVELOPMENT state. If those schemas are updated themselves, it is the schema owner's responsibility to PUT the dependent schemas again to update the schemas. Scope for a schema can't be updated, its a system defined value. Required roles 'users.datalake.editors' or 'users.datalake.admins' groups to update schema.

Security
bearer
Headers
data-partition-idstringrequired

desired data partition id

Bodyapplication/jsonrequired

SchemaRequest

schemaobjectrequired
Example:
{}
schemaInfoobject(Schema Info)required

Schema info including status, creation and schemaIdentity

Example:
{ "schemaIdentity": { "authority": "osdu", "source": "wks", "entityType": "wellbore", "schemaVersionMajor": 1, "schemaVersionMinor": 0, "schemaVersionPatch": 0 }, "status": "DEVELOPMENT" }
curl -i -X PUT \
  https://as5.api.enterprisedata.slb.com/api/schema-service/v1/schema \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'data-partition-id: string' \
  -d '{
    "schemaInfo": {
      "schemaIdentity": {
        "authority": "osdu",
        "source": "wks",
        "entityType": "wellbore",
        "schemaVersionMajor": 1,
        "schemaVersionMinor": 0,
        "schemaVersionPatch": 0
      },
      "status": "DEVELOPMENT"
    },
    "schema": {}
  }'

Responses

Schema updated

Bodyapplication/json
createdBystring

The user who created the schema. This value is taken from API caller token.

Example:"user@opendes.com"
dateCreatedstring, (date-time)

The UTC date time of the entity creation

Example:"2019-05-23 11:16:03+00:00"
schemaIdentityobject(SchemaIdentity)required

Schema authority source and type description

scopestring

Schema Scope - is it internal or shared. This is a system defined attribute based on partition-id passed.

Enum:"INTERNAL""SHARED"
Example:"INTERNAL"
statusstringrequired

Schema lifecycle status

Enum:"PUBLISHED""OBSOLETE""DEVELOPMENT"
supersededByobject(SchemaIdentity)

Schema authority source and type description

Response
{ "createdBy": "user@opendes.com", "dateCreated": "2019-05-23 11:16:03+00:00", "schemaIdentity": { "authority": "osdu", "entityType": "wellbore", "id": "osdu:wks:wellbore:1.0.0", "schemaVersionMajor": 1, "schemaVersionMinor": 1, "schemaVersionPatch": 0, "source": "wks" }, "scope": "INTERNAL", "status": "PUBLISHED", "supersededBy": { "authority": "osdu", "entityType": "wellbore", "id": "osdu:wks:wellbore:1.0.0", "schemaVersionMajor": 1, "schemaVersionMinor": 1, "schemaVersionPatch": 0, "source": "wks" } }